I2C-UTIL - ein Programm zum Ansprechen der I2C-Schnittstelle des JC-][
Die I2C-Schnittstelle ist weit verbreitet und es gibt eine Menge nützlicher Module dafür. Außerdem läuft die Echtzeituhr des JC-][ über die I2C-Schnittstelle.
Die I2C-Schnittstelle ist eigentlich ein BUS, d.h. alle Module am I2C-Bus können mit ihrer Adresse selektiv angesprochen werden.
Leider ist das Schnittstellenprotokoll seriell mit einer Reihe von Eigenheiten, die das Handling etwas umständlich machen. Damit es leichter wird, gibt es nun I2C-UTIL.
Nach dem Start einfach ein ? eingeben und schon erscheint die Befehlsübersicht

Einige Befehle werden euch aus anderen Programmen bekannt vorkommen. Die besprechen wir hier nicht.
Als erstes schauen wir mal nach, was so am I2C-Bus hängt. Der Befehl dazu heißt I, wie Info

Aha, da gibt es in meinem Fall 2 Devices mit den Adressen $57 und $68. Die $68 habt ihr in jedem Fall auch - das ist die Echtzeituhr.
Die $57 ist ein serielles EEPROM.
Schauen wir mal der Uhr aufs Bit

K und Z sind Spezialbefehl nur für Uhrenbausteine auf $68, aber mit dem G-Befehl können wir in die Register schauen. Wir lassen uns ab Register 0 die ersten 11 Bytes ausgeben und sehen da Sekunden, Minuten, Stunden, Wochentag, Tag, Monat und Jahr. Und dann sehen wir auch die Kennung $65, $02, die 2ee benutzt, um zu erkennen, ob die Uhr gesetzt ist. Wer möchte, kann nun mit S68,2,9 auf Sommerzeit umschalten - aber das ist ja noch etwas hin.
Mit diesen Kommandos kann man alle Bausteine ansprechen, die 8-Bit Registeradressen haben. EEPROMs brauchen aber 16 Bit-Register. Auch dafür gibt es Befehle, in meinem Fall liegt unter $57 ein 4 kB-EEPROM

Man kann das EEPROM nun schreiben mit W und Lesen mit R. Zum Datentransfer benutzt man einen Buffer, dessen Adresse im RAM des JC-][ mit B gesetzt wird. Im Bild seht ihr, wie ich den Speicher erst lese und dan aus dem Speicherbereich $4000 Daten ins EEPROM schreibe und diese zur Kontrolle wieder in $8000 auslese und ausgebe.
Mit diesem kleinen Programm lässt sich schon eine ganze Menge anstellen. Probiert es einfach. Dazu ladet am besten das Image CPM-65.IMG aus der anhängenden ZIP auf eure SD. Alle Quellen findet ihr wie gewohnt auch auf https://github.com/Dietrich-L/CPM-65_for_JUNIOR_COMPUTER_II
Über Feedback - besonders über gelungene Versuche - freue ich mich immer.
Dietrich